The present invention is related generally to computers and database software. More specifically, the present invention is related to software for sizing relational database management systems (RDBMSs). The present invention includes methods for determining the required size for database storage.
Relational databases came into common use in computers over twenty years ago. Despite improvements in database software and new methodologies, relational databases remain the mainstay of database management systems. Hardware vendors originally supported proprietary database management systems which ran primarily on machines manufactured by the hardware vendor. Software developers later developed database management systems that were more open and ran on computers made by several vendors. The database management systems were also ported to run under various operating systems. This gave the advantage of spreading the cost of development over more sites and also uncoupled the dependence between hardware vendors and software vendors. Third party support and training also became more common.
Database management systems also became separated into client-side software and server-side software. This meant that the server-side software was decoupled from software having to do with the display, use, and formatting of the data received from the database. In particular, server-side software often handled mostly queries of existing data along with updates of existing data and insertion of new data.
Modern electronic commerce such as commerce over the Internet or business-to-business electronic commerce has placed increased demands on many servers. This has also made frequent upgrades necessary. Company mergers and acquisitions frequently make it necessary to incorporate large amounts of data from unexpected sources. Customer expectations also make it necessary to upgrade hardware to keep up with the faster response times users expect even though system loads may be increasing as well.
When upgrading or replacing database servers, it is necessary to have a good idea as to the size of the database that will have to be implemented on the new server. The data storage as well as storage of many different indices will all increase the amount of data required. It may be necessary to come up with a good estimate of the required amount of mass storage in a short time period, as during bid evaluations, during sales presentations, or repeatedly during scenario building. The person supplying the input may have only a rough idea as to the database mass storage requirements.
What would be desirable are methods for quickly calculating the data storage requirements for relational database systems capable of using either estimated or detailed requirements as input.
The present invention includes methods for estimating the required bytes of mass storage for a database management system using detailed inputs and parameters. An illustrative method includes the steps of: providing detailed inputs for tables in the database sufficient to calculate the required table size for each table; providing detailed inputs for each index for each table in the database sufficient to calculate the required index size for each table; providing input parameters for each RDBMS including the page size, the fill factor, the log file space, the temporary space, as a percent of the formatted database size including indexes, the space required for Operating System and application software, the space required for system databases, the percent growth required for the database, and the page file space; calculating a total storage requirement for the database using the inputs and input parameters; and calculating a storage requirement for the data base management system using the inputs and input parameters. In one method, the calculated storage requirements include separately output Operating System and application software space requirements, system table space requirements, scratch and sort space requirements, and log file space requirements.
Another illustrative embodiment includes a method for estimating the required bytes of mass storage for a database management system using estimated inputs and parameters. An illustrative method includes the steps of: providing inputs for tables in the database sufficient to calculate the estimated size for the database including the number of tables, the amount of data, the average number of columns per row, the average row size, the percent variable length columns, and the average variable length column size per table; providing input parameters for each RDBMS including the page size, the fill factor, the log file space, the temporary space, as a percent of the formatted database size including indexes, the space required for Operating System and application software, the space required for system databases, the percent growth required for the database, and the page file space; providing assumptions including the average number of non cluster indexes per table, the average number of fixed length fields per non cluster index, the average number of cluster indexes per table, the average number of fixed length fields per cluster index, the number of variable length fields per cluster index; and calculating a storage requirement for the data base management system using the inputs, input parameters, and assumptions. In one embodiment of the aforementioned method, the calculated storage requirements separately output Operating System and application software space requirements, system table space requirements, scratch and sort space requirements, and log file space requirements.